/** * Maintainer: [[user:Gálaniitoluodda]] Viikon kilpailun apuohjelma * Maintainer: [[User:Gálaniitoluodda]] * Alkuperäinen skripti: http://no.wikipedia.org/wiki/MediaWiki:Ukens_konkurranse.js * Scriptin toimintaa voi testata sivulla: [[:no:Wikipedia:Ukens konkurranse]] * * if (/^Wikipedia:Ukens_konkurranse\/Ukens_konkurranse/.test(mw.config.get('wgPageName'))) { * mw.loader.load(mw.config.get('wgServer') + mw.config.get('wgScript') + '?title= MediaWiki:Ukens_konkurranse.js&action=raw&ctype=text/javascript&maxage=21600&smaxage=86400'); * } **/ /*jslint browser: true */ /*global mediaWiki, jQuery */ if ( wgUserName=="PtG" || wgUserName=="Samoasambia" || wgUserName=="Gálaniitoluodda" || wgUserName=="Arla" || wgUserName=="Zache" || wgUserName=="Pxos" || wgUserName=="UKBot" ) { $(".vk_administrators_info").show(); } // Ladataan ainoastaan jos ollaan viikon kilpailu -sivulla. if (/Wikipedia:Viikon_kilpailu\/Viikon_kilpailu/.test(mw.config.get('wgPageName')) || /Wikipedia:Heinäkuun_lähdetalkoot/.test(mw.config.get('wgPageName')) || /Wikipedia:Elokuun_kuvitustalkoot\/2013/.test(mw.config.get('wgPageName')) || /Wikipedia:Elokuun_kuvitustalkoot\/2013_b/.test(mw.config.get('wgPageName')) ) { (function ($, mw) { "use strict"; // Mikäli käyttäjä on kilpailun organisaattori niin näytetään organisaattori elementit var e=document.getElementById("vk_organizers"); if (e && e.innerHTML.search(wgUserName)!=-1) { $(".vk_organizers_info").show(); } mw.loader.using(['mediawiki.util', 'jquery.tipsy'], function () { // Increase tipsy max-width mw.util.addCSS('.tipsy-inner { max-width: 65em; font-size:smaller; }'); $('.uk-ap').each(function () { var me = this, timer = null, visible = false; function leave() { timer = setTimeout(function () { $(me).tipsy('hide'); visible = false; }, 200); } function enter() { if (visible) { clearTimeout(timer); } else { $(me).tipsy('show'); $('.tipsy').hover(enter, leave); visible = true; } } $(this).tipsy({ title: function () { return $(me).next('.uk-ap-title').html(); }, html: true, trigger: 'manual', gravity: 'w' }); $(this).hover(enter, leave); }); $('.uk-ap-title').hide(); }); mw.loader.using(['jquery.ui.button', 'jquery.spinner'], function () { mw.messages.set('ukens-konkurranse-login', 'Kirjaudu sisään ilmoittautuaksesi osallistujaksi'); mw.messages.set('ukens-konkurranse-join', 'Ilmoittaudu osallistujaksi'); mw.messages.set('ukens-konkurranse-joined', 'Olet ilmoittautunut!'); mw.messages.set('ukens-konkurranse-closed', 'Tämä kilpailu on päättynyt.
Kiitos kaikille osallistujille!'); mw.messages.set('ukens-konkurranse-summary', 'Ilmoittautumassa...'); var paameldt = false, h2 = $('#Osallistujat').parent(), sectionId = -1, userName = mw.user.name(), api = new mw.Api(), endtime = parseInt($('.UK-end-ts').text(), 10), now = new Date() / 1000; function visPaameldt() { h2.after('
' + mw.messages.get('ukens-konkurranse-joined') + '
'); } if (h2.length === 1) { sectionId = h2.prevAll('h2').size() + 1; if (now > endtime) { h2.after('
' + mw.messages.get('ukens-konkurranse-closed') + '
'); return; } if (userName === null) { h2.after('
' + mw.messages.get('ukens-konkurranse-login') + '
'); return; } // Onko joku ilmoittaunut? if (h2.nextUntil('h2', 'ul').length !== 0) { h2.nextUntil('h2', 'ul').find('a').each(function () { if ($(this).attr('title').split(':')[1] === userName) { paameldt = true; } }); } if (paameldt) { visPaameldt(); } else { h2.after('
'); $(function () { $('#joinbtn').button({ icons: { primary: 'ui-icon-plus-thick' } }).addClass('ui-button-orange'); $('#joinbtn').click(function () { $('#joinbtn').button('option', 'disabled', true); $('#uk-status').injectSpinner('uk-status-spinner'); api.post( { 'action': 'edit', 'title': mw.config.get('wgPageName'), 'section': sectionId, 'appendtext': '\n* [[User:' + userName + '|' + userName + ']]', 'token': mw.user.tokens.get('editToken'), 'summary': mw.messages.get('ukens-konkurranse-summary') }, { 'ok': function () { var ul = h2.nextUntil('h2', 'ul'), li = '
  • ' + userName + '
  • \n'; $.removeSpinner('uk-status-spinner'); paameldt = true; $('#joindiv').remove(); if (ul.length === 0) { h2.nextAll('h2').first().before('\n'); } else { ul.append(li); } visPaameldt(); }, 'err': function (code) { $.removeSpinner('uk-status-spinner'); $('#uk-status').append('Det oppstod en feil:' + code); } } ); }); }); } } }); }(jQuery, mediaWiki)); }